package main

// 图算法，等于计算每个节点的入度 出度
// 法官满足： 入度为 n - 1 出度为 0
// 两个for循环 O(2n)时间复杂度。
func findJudge(n int, trust [][]int) int {
	ru := make([]int, n)
	chu := make([]int, n)
	for _, t := range trust {
		ru[t[1]-1] += 1
		chu[t[0]-1] += 1
	}
	for i := 0; i < n; i++ {
		if ru[i] == n-1 &&
			chu[i] == 0 {
			return i + 1
		}
	}
	// 没有法官，返回-1
	return -1
}
